home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
a_utils
/
yacc
/
flexyacc
/
aflex.lha
/
aflex
/
src
/
aflex.a
< prev
next >
Wrap
Text File
|
1991-05-16
|
4KB
|
111 lines
-- TITLE aflex - main program
--
-- AUTHOR: John Self (UCI)
-- DESCRIPTION main subprogram of aflex, calls the major routines in order
-- $Header: /co/ua/self/arcadia/aflex/ada/src/RCS/aflex.a,v 1.11 90/10/15 20:00:40 self Exp Locker: self $
--***************************************************************************
-- aflex
-- version 1.1c
--***************************************************************************
--
-- Arcadia Project
-- Department of Information and Computer Science
-- University of California
-- Irvine, California 92717
--
-- Send requests for aflex information to alex-info@ics.uci.edu
--
-- Send bug reports for aflex to alex-bugs@ics.uci.edu
--
-- Copyright (c) 1990 Regents of the University of California.
-- All rights reserved.
--
-- This software was developed by John Self of the Arcadia project
-- at the University of California, Irvine.
--
-- Redistribution and use in source and binary forms are permitted
-- provided that the above copyright notice and this paragraph are
-- duplicated in all such forms and that any documentation,
-- advertising materials, and other materials related to such
-- distribution and use acknowledge that the software was developed
-- by the University of California, Irvine. The name of the
-- University may not be used to endorse or promote products derived
-- from this software without specific prior written permission.
-- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-- WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
--
-- This program is based on the flex program written by Vern Paxson.
--
-- The following is the copyright notice from flex, from which aflex is
-- derived.
-- Copyright (c) 1989 The Regents of the University of California.
-- All rights reserved.
--
-- This code is derived from software contributed to Berkeley by
-- Vern Paxson.
--
-- The United States Government has rights in this work pursuant to
-- contract no. DE-AC03-76SF00098 between the United States Department of
-- Energy and the University of California.
--
-- Redistribution and use in source and binary forms are permitted
-- provided that the above copyright notice and this paragraph are
-- duplicated in all such forms and that any documentation,
-- advertising materials, and other materials related to such
-- distribution and use acknowledge that the software was developed
-- by the University of California, Berkeley. The name of the
-- University may not be used to endorse or promote products derived
-- from this software without specific prior written permission.
-- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
--
--***************************************************************************
with MAIN_BODY, DFA, GEN, MISC_DEFS, TEXT_IO, MISC;
with TSTRING, TEMPLATE_MANAGER, EXTERNAL_FILE_MANAGER; use MISC_DEFS, TEXT_IO,
TSTRING, EXTERNAL_FILE_MANAGER;
function AFLEX return INTEGER is
copyright : constant string :=
"@(#) Copyright (c) 1990 Regents of the University of California.";
copyright2 : constant string :=
"All rights reserved.";
begin
MAIN_BODY.AFLEXINIT;
MAIN_BODY.READIN;
if (SYNTAXERROR) then
MAIN_BODY.AFLEXEND(1);
end if;
if (PERFORMANCE_REPORT) then
if (INTERACTIVE) then
TEXT_IO.PUT_LINE(STANDARD_ERROR,
"-I (interactive) entails a minor performance penalty");
end if;
end if;
if (VARIABLE_TRAILING_CONTEXT_RULES) then
MISC.AFLEXERROR("can't handle variable trailing context rules");
end if;
-- convert the ndfa to a dfa
DFA.NTOD;
-- generate the Ada state transition tables from the DFA
GEN.MAKE_TABLES;
TEMPLATE_MANAGER.GENERATE_IO_FILE;
TEMPLATE_MANAGER.GENERATE_DFA_FILE;
MAIN_BODY.AFLEXEND(0);
return 0;
exception
when MAIN_BODY.AFLEX_TERMINATE =>
return MAIN_BODY.TERMINATION_STATUS;
end AFLEX;